﻿using Domain.Model;

namespace Application.Common.Interface
{
    public interface ISelectorRepository:IRepository
    {
        Task AddAsync(Selector sel);
        Task<List<Selector>> GetAllBySiteMapIdAsync(int siteMapId);
        Task<Selector?> GetBySiteMapIdAsync(int siteMapId);
        Task<Selector?> GetByIdAsync(int Id);
        Task<List<Selector>> GetByIdsAsync(IEnumerable<int> Ids);
        Task<List<Selector>> GetParentSelectorsById(int Id);
        Task<List<Selector>> GetParentSelectorsBySelectorAsync(Selector? sel);
        Task<List<Selector>> GetChildrenSelectorsByFatherIdAsync(int fatherId);
        Task<Selector> GetTreeSelectorByIdAsync(int Id);

        Task UpdateAsync(Selector sel);
        Task DeleteAsync(int Id);
    }
}
